A packet switched network is a network in which packets (units of information) are individually routed between nodes over data links, which might be shared by many other nodes. This contrasts with circuit switching, which sets up a dedicated connection between two nodes for their exclusive use during the life time of the connection. Packet switching is utilized to i.a. optimize the use of the bandwidth available in a network, to minimize the transmission latency (i.e. the time it takes for data to pass across the network), and to increase the robustness of the communication.
Basically, in a packet switched network, a set of information (e.g. an ordinary data file) is broken up into smaller groups of data known as “packets”. The packets are typically carrying information with regard to their origin, destination and sequence within the information set that is transmitted over the network. This is needed for the re-assembly of the information set at the destination node. Hence, a packet can be perceived as a block of data with address and administrative information attached, which information allows a network of nodes to deliver the data to the destination node, e.g. as in Ipv6 (Internet Protocol version 6). A packet is analogous to a letter sent through the mail with the address written on the outside.
Packets are routed to their destination through the most expedient route (as determined by some routing algorithm). This means that packets traveling between the same two nodes may follow different routes and that a specific route or data connection will usually carry packets from several nodes. Consequently packets sent between a pair of nodes may arrive in an order different from the order in which they were originally sent. In addition, the duration between two successive packets may differ at the sending node and at the receiving node, i.e. two packets may be transmitted with a certain time difference and received with another time difference.
The most well-known use of the packet switching model is probably the Internet. The Internet is a packet-switched network running the protocol “Internet Protocol” (layer 3) over a variety of other network technologies. Here, the Ethernet, X.25 and Frame relay are examples of international standard layer 2 packet switching networks. Recent mobile phone technologies such as the GPRS (General Packet Radio Service) are also employing packet switching. This is opposed to the older GSM (Global System for Mobile Communications) technology which in all essential aspects employs circuit switching.
Standardized packet switched networks are normally required to handle flow control, especially when multiple contexts are transmitted to a certain node or certain nodes. Flow control includes such measures as scheduling according to traffic class, handling of congestions, traffic priority and transfer delay etc.
A traffic class can e.g. be a so-called best-effort class for handling transfer of such information as data files, which typically tolerates buffering and rather large packet delay variations. Another traffic class can be a so-called streaming class for handling transfer of such information as full motion movies, which usually tolerates some buffering and packet delay variations. Still another traffic class can be a class that handles transfer of information that more or less requires emulation of a circuit switched network and which therefore tolerates low or no buffering, packet delay or packet delay variations. The GPRS traffic class Conversational is an example of such a traffic class. Information that tolerates low or no buffering, packet delay and packet delay variations is e.g. voice conversations and video-conferences and similar real-time communication.
As already indicated, a flow control for multiple contexts transmitted over a packet switched network to a certain node or certain nodes must almost without exception be prepared to handle congestion situations, at least if the bandwidth is limited and efficiently utilized. Congestions in a packet switched network are typically handled by buffering of the packets. Buffering is typically applied to all traffic classes, at least to some extent and the packets are usually buffered by involving a so-called leaky-bucket algorithm in a well-known manner.
A leaky-bucket algorithm can be conceptually understood as follows:                Two nodes A and B are typically involved. Packets are preferably arriving in a buffer at node A for a subsequent transmission to a buffer at node B.        Arriving packets are placed in a virtual bucket with a hole in the bottom.        The bucket can queue at most b bytes. A packet that arrives when the bucket is full is handled, e.g. by being discharged or buffered for a later delivery to the bucket, and if necessary the oldest packet in the buffer maybe discharged if the buffer becomes full.        Packets drain through the hole in the bucket into the buffer at node B at a certain leak rate of r bytes per second, thus smoothing traffic bursts.        Node B is preferably informing Node A about the bucket size and the bucket leak rate needed or desired for the functions in node B, and also about the number of bytes actually received by the buffer in node B, which may differ from the number of bytes transmitted from node A, e.g. due to disturbances in the transmission between node A and B.        
Typically, the algorithm is used to control the rate at which data is injected into the network, smoothing out “burstiness” in the data rate.
When a bucket according to the above has leaked enough so as to allow a further packet to be sent one of the traffic classes is allowed to send the next packet.
This strategy works reasonably well for most traffic classes, since their corresponding applications use buffering in their internal algorithms and/or admit retransmission of packets being lost or discharged due to congestions or other interference of the transmission.
However, buffering packets is not an option when it comes to traffic classes that more or less require an emulation of a circuit switched network, i.e. traffic classes that tolerates low or no buffering, packet delay or packet delay variations. This is especially so in connection with the GPRS traffic class Conversational, which e.g. transmits such information as VoIP, since buffering will only add to the total network delay and create unnecessary jitter. The human ear and codecs that create speech from IP packets works poorly if the delay is above 300 ms and silent periods will be created if the jitter is too large (i.e. large time difference in packet arrival).
Hence, there is a need for a solution that effectively combines transfer of ordinary packet data with transfer of packet data that more or less require emulation of a circuit switched network.